//
// Created by Semir on 2020/4/23.
//

#include <iostream>
#include <string>
#include <cstring>
#include <vector>

using namespace std;

const int MAX_LEN = 2005;
string a, b;
int carry[MAX_LEN];

void swap(string *a, string *b) {
    string temp = *a;
    *a = *b;
    *b = temp;
}

int main() {
    memset(carry, 0, sizeof(carry));
    cin >> a >> b;
    if (a == "0" || b =="0") {
        cout << "0" << endl;
        return 0;
    }
    int maxLen = a.length() + b.length();
    vector<int> intRes(maxLen);
    for (int i = a.length() - 1; i >= 0; i--) {
        for (int j = b.length() - 1; j >= 0; j--) {
            int temp = (a[i] - '0') * (b[j] - '0');
            intRes[i + j + 1] += temp;
        }
    }
    for (int i = maxLen - 1; i > 0; i--) {
        intRes[i - 1] += intRes[i] / 10;
        intRes[i] %= 10;
    }
    int index = 0;
    for (; index < maxLen && intRes[index] == 0; index++);
    for (; index < maxLen; index++) {
        cout << intRes[index];
    }
    return 0;
}
